///*
// * Rule.h
// *
// *  Created on: 2014. 6. 10.
// *      Author: jjaehuny
// */
//
//#ifndef FRAMEWORK_NMEMORY_POLICY_H_
//#define FRAMEWORK_NMEMORY_POLICY_H_
//
//#include <mutex>
//
//#include "../Macro.h"
//
//namespace Framework { namespace NMemory { namespace Policy {
//
//namespace Synchronization {
//
//struct SingleThread
//{
//public:
//	void lock() {}
//	bool try_lock() { return true; }
//	void unlock() {}
//};
//
//struct MultiThread
//{
//public:
//	void lock() {mutex_.lock(); }
//	bool try_lock() { return true; }
//	void unlock() {mutex_.unlock(); }
//
//private:
//	std::mutex mutex_;
//};
//
//} /*Synch*/
//
//namespace Factory {
//
//template<class Type>
//struct DoNothing
//{
//public:
//	Type * NEW () { return NULL; }
//};
//
//template<class Type>
//struct Doing
//{
//public:
//	Type * NEW () { return new Type; }
//};
//
//} /*Factory*/
//
//namespace InitAction {
//
//template<class Type>
//struct DoNothing
//{
//public:
//	void Initialize (Type * pType) {}
//	void Finalize (Type * pType) {}
//};
//
//template<class Type>
//struct Doing
//{
//public:
//	void Initialize (Type * pType) { pType->Initialize(); }
//	void Finalize (Type * pType) { pType->Finalize(); }
//};
//
//} /*Initialize*/
//
//} /*Policy*/ } /*NMemory*/ } /*Framework*/
//
//
//#endif /* FRAMEWORK_NMEMORY_POLICY_H_ */
